﻿#ifndef ITFRAMEWORK_H
#define ITFRAMEWORK_H

#include "commdef.h"

class ITLogger;
class ITConfig;
class ITPublicMgr;
class ITUiMgr;
class ITService;
class ITCommon;
class ITFramework : public QObject
{
public:
    ITFramework(){}
    virtual ~ITFramework(){}
    virtual TRESULT Init() TPURE;
    virtual TRESULT UnInit() TPURE;
    virtual TRESULT SetLogger(ITLogger *pLogger) TPURE;
    virtual TRESULT GetLogger(ITLogger **ppLogger) TPURE;
    virtual TRESULT GetPublicMgr(ITPublicMgr **ppMgr) TPURE;
    virtual TRESULT GetUiMgr(ITUiMgr **ppMgr) TPURE;
    virtual TRESULT GetSalesman(ITService **ppService) TPURE;
    virtual TRESULT GetSaleswoman(ITService **ppService) TPURE;
    virtual TRESULT GetUiService(ITService **ppService) TPURE;
    virtual TRESULT GetCommon(ITCommon **ppCommon) TPURE;
    virtual TRESULT SetCBDlgStart(pfnCBClient pfn, void *pUserdata) TPURE;
    virtual TRESULT GetCBDlgStart(pfnCBClient *ppfn, void **ppUserdata) TPURE;
    virtual TRESULT SetCBCheckIn(pfnCBClient pfn, void *pUserdata) TPURE;
    virtual TRESULT GetCBCheckIn(pfnCBClient *ppfn, void **ppUserdata) TPURE;
    virtual TRESULT SetCBConsultant(pfnCBClient pfn, void *pUserdata) TPURE;
    virtual TRESULT GetCBConsultant(pfnCBClient *ppfn, void **ppUserdata) TPURE;
    virtual TRESULT SetCBGuide(pfnCBClient pfn, void *pUserdata) TPURE;
    virtual TRESULT GetCBGuide(pfnCBClient *ppfn, void **ppUserdata) TPURE;
    virtual TRESULT SetCBPropagandist(pfnCBClient pfn, void *pUserdata) TPURE;
    virtual TRESULT GetCBPropagandist(pfnCBClient *ppfn, void **ppUserdata) TPURE;
};
#endif // ITFRAMEWORK_H
